package simulacoes.or;

import comportamento.neuronio.INeuronioAbstrato;

import concreto.neuronio.NeuronioMP;

public class PortaOR extends NeuronioMP {

    public PortaOR(double limiar) {

	super(limiar);
	selecionarFuncaoAtivacao(INeuronioAbstrato.ATIVACAO_DEGRAU);	
    }
    
    public PortaOR() {

	super(0.2);
	selecionarFuncaoAtivacao(INeuronioAbstrato.ATIVACAO_DEGRAU);	
    }    

    /* (non-Javadoc)
     * @see concreto.neuronio.NeuronioMP#geraPesosConexoes(int)
     */
    @Override
    public void geraPesosConexoes(int quantidadeEntradas) {
	
	this.wk = new double[quantidadeEntradas];

	for(int i = 0; i < quantidadeEntradas; i++) {
	    this.wk[i] = 0.2;
	}
    }

    /* (non-Javadoc)
     * @see concreto.neuronio.NeuronioMP#toString()
     */
    @Override
    public String toString() {
	StringBuffer b = new StringBuffer("");
	
	String estimulos = "[";

	if(this.estimulos != null && this.estimulos.length > 0) {

	    for(double e : this.estimulos) {
		estimulos = estimulos.concat(e + ", ");
	    }
	    estimulos = estimulos.substring(0, estimulos.length()-2).concat("]");
	} else {
	    estimulos = estimulos.concat(" ]");
	}	
	
	b.append("\n entradas: " + estimulos);
	b.append("\n resultado: " +  this.y);
	
	return b.toString();
    }
    
}
